<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>商品列表</h1>
    <table border="1">
        <tr>
            <th>商品id</th>
            <th>商品标题</th>
            <th>商品价格</th>
            <th>商品销量</th>
            <th>操作</th>
        </tr>
        <tr v-for="p in arr">
            <td>{{p.id}}</td>
            <td>{{p.title}}</td>
            <td>{{p.price}}</td>
            <td>{{p.saleCount}}</td>
            <!-- 废掉超链接的跳转功能 -->
            <td><a href="javascript:void(0)" @click="del(p.id)">删除</a>
            <!-- 点击修改需要跳转页面,所以不会废掉跳转功能
                 元素的属性中出现了变量,必须加冒号,需要进行属性的绑定 -->
            <a :href="'/update.html?id='+p.id">修改</a></td>
        </tr>
    </table>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
    <script>
        let v = new Vue({
            el:"table",
            data:{
                arr:[]
            },
            //此方法是Vue对象创建时执行的方法,一般会把加载完页面后需要的请求数据的代码写在此方法中
            created:function () {
                axios.get("/select").then(function (response) {
                    //服务器返回的数据直接赋值给arr数组,由于页面和数组进行了绑定,数组值发生了变化,页面会自动变化
                    //服务器传递来的数据就是二进制数据,先将二进制的数据转换为JSON格式的字符串,
                    //转换完成后,Axios框架会将JSON格式的字符串数据转换为数组或者对象
                    v.arr = response.data;
                })
            },
            methods:{
                del(id){
                    //发出删除的异步请求
                    axios.get("/delete?id="+id).then(function (response) {
                        alert("删除成功!");
                        location.reload(); //刷新页面
                    })
                }
            }
        })
    </script>
</body>
</html>